Greenplum 从入门到放弃(三)
master 和 segment关系
Master和Segment其实都是一个单独的PostgreSQL数据库。
每一个都有自己单独的一套元数据字典,在这里,Master节点
一般也叫主节点,Segment也叫做数据节点。
Segment节点与Master节点的通信,通过千兆(或万兆)
网卡组成的内部连接(InterConnect),在同一台数据节点机
器上可以放多个Segment,不同的Segment节点会被赋予不同的
端口,同时,Segment之间也不断地进行着交互。为了实现高
可用,每个Segment都有对应的备节点(Mirror Segment),分
别存在于不同的机器上。
Client一般只能与Master节点进行交互,Client将SQL发给Master,然后Master对SQL进行分析后,再将其分配给所有的Segment进行操作,并且将汇总结果返回给客户端。
数据库存储
对于数据库来说,在性能上磁盘IO很容易成为瓶颈,由于数据库的特性,每一个SQL基本都是对全表数据进行分析,每次处理的数据量非常大,数据基本上都是没有缓存的(数据字典除外),极度消耗IO资源(全表扫描主要都是顺序IO),所以Greenplum对存储的要求比较高。在文件系统的选择上,在Linux下建议使用XFS,在Solaris下建议使用ZFS,对于Raid根据需求选择硬Raid或软Raid,如果需要更大的空间,建议使用Raid5,如果对性能有更高的要求,可以选择Raid 1+0。
网络
在确定机器配置的时候,要保证所有机器的网络都是通的,并且每台机器的防火墙都是关闭的,避免存在网络不通的问题。